昨天我們將交叉查詢 (JOINS) & 彙總查詢 (Aggregation) 大致上做了介紹,有關查詢的語法暫時告一段落,所以回顧一下我們這幾天大致學會了如何寫入資料 (INSERT INTO),以及查詢資料 (SELECT),今天我們就來介紹如何修改以及刪除資料,將簡單的 CRUD
補完
CRUD 是 Create(創建)、Read(讀取)、Update(更新)和 Delete(刪除)的縮寫
代表了資料庫中最常見的四種操作
在開啟學習如何更新以及刪除資料之前,我們先將今天要使用到資料表 (table) 建立好
CREATE TABLE animals (
id SERIAL PRIMARY KEY,
name character varying NOT NULL,
species character varying,
gender character(1) CHECK (gender IN ('F', 'M')),
weight real,
age int
);
INSERT INTO animals (name, species, gender, weight, age)
values ('饅頭', '貓', 'M', 5.5, 7),
('弟弟', '貓', 'M', 6.2, 5),
('妹妹', '貓', 'F', 4.7, 5),
('小黑', '狗', 'F', 7.4, 10);
id | name | species | gender | weight | age |
---|---|---|---|---|---|
1 | 饅頭 | 貓 | M | 5.5 | 7 |
2 | 弟弟 | 貓 | M | 6.2 | 5 |
3 | 妹妹 | 貓 | F | 4.7 | 5 |
4 | 小黑 | 狗 | F | 7.4 | 10 |
UPDATE
更新資料其實沒有想像中的難,這邊就讓我們來設定一個情境
UPDATE animals
SET age = age + 1 RETURNING *;
結果:
id | name | species | gender | weight | age
----+------+---------+--------+--------+-----
1 | 饅頭 | 貓 | M | 5.5 | 8
2 | 弟弟 | 貓 | M | 6.2 | 6
3 | 妹妹 | 貓 | F | 4.7 | 6
4 | 小黑 | 狗 | F | 7.4 | 11
(4 rows)
UPDATE 4
剛剛的情況是表格內的全部資料都要做改變,所以沒有使用 WHERE
子句,但是絕大部分在更新資料時一定會做條件限制的,這邊我們就來舉例一個情境
弟弟
跟 妹妹
都變胖了 0.3 公斤了UPDATE animals
SET weight = weight + 0.3
WHERE name IN ('弟弟', '妹妹') RETURNING *;
結果:
id | name | species | gender | weight | age
----+------+---------+--------+--------+-----
2 | 弟弟 | 貓 | M | 6.5 | 6
3 | 妹妹 | 貓 | F | 5 | 6
(2 rows)
UPDATE 2
DELETE
DELETE FROM animals
WHERE name = '小黑' RETURNING *;
結果:
id | name | species | gender | weight | age
----+------+---------+--------+--------+-----
4 | 小黑 | 狗 | F | 7.4 | 11
(1 row)
DELETE 1
CRUD
語法:
INSERT INTO table_name (column_1, column_2, column_3 ...)
VALUES (value1, value2, value3, ...);
SELECT column_1, column_2 ....
FROM table_name
WHERE some_conditions;
Update table_name
SET column_1 = new_value_1, column_2 = new_value_2, ...
WHERE some_conditions;
DELETE FROM table_name
WHERE some_conditions;
今天將 SQL 中如何做到 CRUD 補完了
明天會和大家介紹 什麼是 DDL、DML、TCL、DCL ?